package com.ruoyi.report_jl.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.report_jl.domain.ReportJlCjlzpznfxjlbBaDetail;
import com.ruoyi.report_tg.domain.bo.ExcelGeneralBo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 粗集料针片状颗粒含量、黏附性、0.075mm以下颗粒含量试验检测记录业务对象 report_jl_cjlzpznfxjlb_bs_info
 *
 * @author tll
 * @date 2024-06-03
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ReportJlCjlzpznfxjlbBsInfoBo extends ExcelGeneralBo {

    /**
     * id
     */
    @NotNull(message = "id不能为空", groups = { EditGroup.class })
    private Long excelId;

    /**
     * 共几页
     */
    @NotNull(message = "共几页不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long totalPage;

    /**
     * 第几页
     */
    @NotNull(message = "第几页不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long page;

    /**
     * 记录编号
     */
    @NotBlank(message = "记录编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jilbh;

    /**
     * 检测单位名称
     */
    @NotBlank(message = "检测单位名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jiancdwmc;

    /**
     * 工程部位/用途
     */
    @NotBlank(message = "工程部位/用途不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gongcbwyt;

    /**
     * 样品名称
     */
    @NotBlank(message = "样品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpmc;

    /**
     * 样品编号
     */
    @NotBlank(message = "样品编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpbh;

    /**
     * 样品数量
     */
    @NotBlank(message = "样品数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpsl;

    /**
     * 样品状态
     */
    @NotBlank(message = "样品状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpzt;

    /**
     * 样品时间
     */
    @NotNull(message = "样品时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String yangpsj;

    /**
     * 试验检测日期
     */
    @NotBlank(message = "试验检测日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiyjcrq;

    /**
     * 试验条件温度
     */
    @NotBlank(message = "试验条件温度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiytjwd;

    /**
     * 试验条件湿度
     */
    @NotBlank(message = "试验条件湿度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shiytjsd;

    /**
     * 检测依据
     */
    @NotBlank(message = "检测依据不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jiancyj;

    /**
     * 判定依据
     */
    @NotBlank(message = "判定依据不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pandyj;

    /**
     * 主要仪器设备名称及编号
     */
    @NotBlank(message = "主要仪器设备名称及编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String zhuyyqsbmcjbh;

    /**
     * 附加声明
     */
    @NotBlank(message = "附加声明不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fujsm;

    /**
     * 报表名称
     */
    @NotBlank(message = "报表名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String baobmc;

    /**
     * 报表编号
     */
    @NotBlank(message = "报表编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String baobbh;

    /**
     * 工程名称
     */
    @NotBlank(message = "工程名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gongcmc;

    /**
     * 检测人
     */
    @NotBlank(message = "检测人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jiancr;

    /**
     * 记录人
     */
    @NotBlank(message = "记录人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jilr;

    /**
     * 复核人
     */
    @NotBlank(message = "复核人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fuhr;

    /**
     * 日期
     */
    @NotNull(message = "日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date riq;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 针片状颗粒含量类别
     */
    @NotNull(message = "针片状颗粒含量类别不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhllb;

    /**
     * 针片状颗粒含量混合料试验次数行1
     */
    @NotNull(message = "针片状颗粒含量混合料试验次数行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsycsItem1;

    /**
     * 针片状颗粒含量混合料试验用集料质量(g)行1
     */
    @NotNull(message = "针片状颗粒含量混合料试验用集料质量(g)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyyjlzlItem1;

    /**
     * 针片状颗粒含量混合料试验针片状颗粒质量(g)行1
     */
    @NotNull(message = "针片状颗粒含量混合料试验针片状颗粒质量(g)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyzpzklzlItem1;

    /**
     * 针片状颗粒含量混合料试验针片状颗粒含量(%)行1
     */
    @NotNull(message = "针片状颗粒含量混合料试验针片状颗粒含量(%)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyzpzklhlItem1;

    /**
     * 针片状颗粒含量混合料试验次数行2
     */
    @NotNull(message = "针片状颗粒含量混合料试验次数行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsycsItem2;

    /**
     * 针片状颗粒含量混合料试验用集料质量(g)行2
     */
    @NotNull(message = "针片状颗粒含量混合料试验用集料质量(g)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyyjlzlItem2;

    /**
     * 针片状颗粒含量混合料试验针片状颗粒质量(g)行2
     */
    @NotNull(message = "针片状颗粒含量混合料试验针片状颗粒质量(g)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyzpzklzlItem2;

    /**
     * 针片状颗粒含量混合料试验针片状颗粒含量(%)行2
     */
    @NotNull(message = "针片状颗粒含量混合料试验针片状颗粒含量(%)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyzpzklhlItem2;

    /**
     * 针片状颗粒含量混合料试验次数行3
     */
    @NotNull(message = "针片状颗粒含量混合料试验次数行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsycsItem3;

    /**
     * 针片状颗粒含量混合料试验用集料质量(g)行3
     */
    @NotNull(message = "针片状颗粒含量混合料试验用集料质量(g)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyyjlzlItem3;

    /**
     * 针片状颗粒含量混合料试验针片状颗粒质量(g)行3
     */
    @NotNull(message = "针片状颗粒含量混合料试验针片状颗粒质量(g)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyzpzklzlItem3;

    /**
     * 针片状颗粒含量混合料试验针片状颗粒含量(%)行3
     */
    @NotNull(message = "针片状颗粒含量混合料试验针片状颗粒含量(%)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyzpzklhlItem3;

    /**
     * 针片状颗粒含量混合料试验平均值(%)
     */
    @NotNull(message = "针片状颗粒含量混合料试验平均值(%)不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlhhlsyPjz;

    /**
     * 针片状颗粒含量粒径大于95试验次数行1
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验次数行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95sycsItem1;

    /**
     * 针片状颗粒含量粒径大于95试验用集料质量(g)行1
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验用集料质量(g)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syyjlzlItem1;

    /**
     * 针片状颗粒含量粒径大于95试验针片状颗粒质量(g)行1
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验针片状颗粒质量(g)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syzpzklzlItem1;

    /**
     * 针片状颗粒含量粒径大于95试验针片状颗粒含量(%)行1
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验针片状颗粒含量(%)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syzpzklhlItem1;

    /**
     * 针片状颗粒含量粒径大于95试验次数行2
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验次数行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95sycsItem2;

    /**
     * 针片状颗粒含量粒径大于95试验用集料质量(g)行2
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验用集料质量(g)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syyjlzlItem2;

    /**
     * 针片状颗粒含量粒径大于95试验针片状颗粒质量(g)行2
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验针片状颗粒质量(g)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syzpzklzlItem2;

    /**
     * 针片状颗粒含量粒径大于95试验针片状颗粒含量(%)行2
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验针片状颗粒含量(%)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syzpzklhlItem2;

    /**
     * 针片状颗粒含量粒径大于95试验次数行3
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验次数行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95sycsItem3;

    /**
     * 针片状颗粒含量粒径大于95试验用集料质量(g)行3
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验用集料质量(g)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syyjlzlItem3;

    /**
     * 针片状颗粒含量粒径大于95试验针片状颗粒质量(g)行3
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验针片状颗粒质量(g)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syzpzklzlItem3;

    /**
     * 针片状颗粒含量粒径大于95试验针片状颗粒含量(%)行3
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验针片状颗粒含量(%)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syzpzklhlItem3;

    /**
     * 针片状颗粒含量粒径大于95试验平均值(%)
     */
    @NotNull(message = "针片状颗粒含量粒径大于95试验平均值(%)不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljdy95syPjz;

    /**
     * 针片状颗粒含量粒径小于95试验次数行1
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验次数行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95sycsItem1;

    /**
     * 针片状颗粒含量粒径小于95试验用集料质量(g)行1
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验用集料质量(g)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syyjlzlItem1;

    /**
     * 针片状颗粒含量粒径小于95试验针片状颗粒质量(g)行1
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验针片状颗粒质量(g)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syzpzklzlItem1;

    /**
     * 针片状颗粒含量粒径小于95试验针片状颗粒含量(%)行1
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验针片状颗粒含量(%)行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syzpzklhlItem1;

    /**
     * 针片状颗粒含量粒径小于95试验次数行2
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验次数行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95sycsItem2;

    /**
     * 针片状颗粒含量粒径小于95试验用集料质量(g)行2
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验用集料质量(g)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syyjlzlItem2;

    /**
     * 针片状颗粒含量粒径小于95试验针片状颗粒质量(g)行2
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验针片状颗粒质量(g)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syzpzklzlItem2;

    /**
     * 针片状颗粒含量粒径小于95试验针片状颗粒含量(%)行2
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验针片状颗粒含量(%)行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syzpzklhlItem2;

    /**
     * 针片状颗粒含量粒径小于95试验次数行3
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验次数行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95sycsItem3;

    /**
     * 针片状颗粒含量粒径小于95试验用集料质量(g)行3
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验用集料质量(g)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syyjlzlItem3;

    /**
     * 针片状颗粒含量粒径小于95试验针片状颗粒质量(g)行3
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验针片状颗粒质量(g)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syzpzklzlItem3;

    /**
     * 针片状颗粒含量粒径小于95试验针片状颗粒含量(%)行3
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验针片状颗粒含量(%)行3不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syzpzklhlItem3;

    /**
     * 针片状颗粒含量粒径小于95试验平均值(%)
     */
    @NotNull(message = "针片状颗粒含量粒径小于95试验平均值(%)不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal zhenpzklhlljxy95syzpzklhlPjz;

    /**
     * 水洗法小于075颗粒含量试验编号行1
     */
    @NotBlank(message = "水洗法小于075颗粒含量试验编号行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shuixfxy075klhlsybhItem1;

    /**
     * 水洗法小于075颗粒含量试验前烘干试样质量行1
     */
    @NotNull(message = "水洗法小于075颗粒含量试验前烘干试样质量行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shuixfxy075klhlsyqhgsyzlItem1;

    /**
     * 水洗法小于075颗粒含量试验后烘干试样质量行1
     */
    @NotNull(message = "水洗法小于075颗粒含量试验后烘干试样质量行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shuixfxy075klhlsyhhgsyzlItem1;

    /**
     * 水洗法小于075颗粒含量行1
     */
    @NotNull(message = "水洗法小于075颗粒含量行1不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shuixfxy075klhlItem1;

    /**
     * 水洗法小于075颗粒含量试验编号行2
     */
    @NotBlank(message = "水洗法小于075颗粒含量试验编号行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shuixfxy075klhlsybhItem2;

    /**
     * 水洗法小于075颗粒含量试验前烘干试样质量行2
     */
    @NotNull(message = "水洗法小于075颗粒含量试验前烘干试样质量行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shuixfxy075klhlsyqhgsyzlItem2;

    /**
     * 水洗法小于075颗粒含量试验后烘干试样质量行2
     */
    @NotNull(message = "水洗法小于075颗粒含量试验后烘干试样质量行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shuixfxy075klhlsyhhgsyzlItem2;

    /**
     * 水洗法小于075颗粒含量行2
     */
    @NotNull(message = "水洗法小于075颗粒含量行2不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shuixfxy075klhlItem2;

    /**
     * 水洗法小于075颗粒含量试验平均值
     */
    @NotNull(message = "水洗法小于075颗粒含量试验平均值不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal shuixfxy075klhlsyPjz;

    @NotNull(message = "子表", groups = { AddGroup.class, EditGroup.class })
    private List<ReportJlCjlzpznfxjlbBaDetail> detailList;

    @NotNull(message = "报表编号集", groups = { AddGroup.class, EditGroup.class })
    private List<String> baobbhList;

}
